//
//  IPopLayerProtocol.h
//  DesignMode
//
//  Created by wangzhipan on 2024/11/15.
//

#ifndef IPopLayerProtocol_h
#define IPopLayerProtocol_h
#import <Foundation/Foundation.h>

typedef void(^PopLayerShowCmd)(void);
typedef void(^PopLayerCloseCmd)(BOOL inQueue);  //inQueue是否在队列中排队，false的话说明已经在展示了
typedef void(^PopLayerInterruptCmd)(void);
typedef void(^PopLayerResumeCmd)(void);


@protocol IPopLayerRequest <NSObject>
@property (nonatomic, copy, nullable) PopLayerShowCmd showBlock;
@property (nonatomic, copy, nullable) PopLayerCloseCmd closeBlock;

@property (nonatomic, copy, nullable) PopLayerInterruptCmd interruptBlock;
@property (nonatomic, copy, nullable) PopLayerResumeCmd resumeBlock;

@property (nonatomic, copy, nullable) NSString *popLayerId;
@property (nonatomic, assign) BOOL isManual;  //是否用户手动点击
@property (nonatomic, assign) NSUInteger priority;
@property (nonatomic, copy, nullable) void(^finishBlock)(void);


- (void)doShow;
- (void)doClose:(BOOL)inQueue;
- (void)doInterrupt;
- (void)doResume;
@end

#endif /* IPopLayerProtocol_h */
